Currently-implemented multiple input/multiple output (MIMO) wireless communication systems sometimes employ unitary precoding prior to mapping data streams to physical antennas in order to create a set of virtual antennas. This allows each codeword to be transmitted from all the physical antennas. However, this precoding is performed for spatial multiplexing only. When the system is using transmit diversity, precoding is not available, resulting in decreased performance. Therefore, there is a need in the art for a system for performing precoding with both spatial multiplexing and transmit diversity in a wireless communication system.